SlideShare a Scribd company logo
1 of 35
Design Engineering 
Preeti Mishra 
Course Instructor
Till Now.. 
• Requirements Engineering 
• Analysis Modeling 
Move further 
• Design Engineering
Before Moving On.. 
• What’s the Difference Between : 
Analysis Modeling 
and 
Design Modeling/ Engineering
Roughly speaking… 
– Analysis: some kind of understanding of a problem or 
situation. 
– Design: creation of a solution for the analyzed problem. 
– Model: simplification that is used to better understand 
the problem (“analysis model”) or the solution (“design 
model”).
Originally 
• Analysis/Decomposition: 
• Breaking a whole into its component parts (in order to better 
understand it). 
• Opposed to synthesis/composition: “building a whole out of its parts”. 
• Design: 
• Drawing or making a blueprint of something before constructing it. 
• The design anticipates and guides the production process, the 
“synthesis”. 
• Design is part of (the preparatory phases of) synthesis.
Orthogonal dimensions: 
In each axis: two values corresponding to analysis (nearest to origin) and 
design (farthest).
Jonny Adams ;) 
• https://www.youtube.com/watch?v=iq 
4oWw8OI_g
• "You can use an eraser on the drafting table or a 
sledge hammer on the construction site." 
Frank Lloyd Wright
10 
Purpose of Design 
• Design is where : 
– customer requirements, 
– business needs, and 
– technical considerations 
all come together in the formulation of a product or system 
• The design model provides detail about the : 
– software data structures, 
– architecture, 
– interfaces, and 
– components 
• The design model can be assessed for quality and be improved 
before code is generated and tests are conducted
11 
Purpose of Design 
(continued) 
• A designer must practice diversification and convergence 
– The designer selects from design components, component solutions, 
and knowledge available through catalogs, textbooks, and experience 
– The designer then chooses the elements from this collection that meet 
the requirements defined by requirements engineering and analysis 
modeling 
– Convergence occurs as alternatives are considered and rejected until 
one particular configuration of components is chosen 
• Software design is an iterative process through which 
requirements are translated into a blueprint for constructing the 
software 
– Design begins at a high level of abstraction that can be directly traced 
back to the data, functional, and behavioral requirements 
– As design iteration occurs, subsequent refinement leads to design 
representations at much lower levels of abstraction
12 
From Analysis Model to 
Design Model 
Component-level Design 
(Class-based model, Flow-oriented model 
Behavioral model) 
Interface Design 
(Scenario-based model, Flow-oriented model 
Behavioral model) 
Architectural Design 
(Class-based model, Flow-oriented model) 
Data/Class Design 
(Class-based model, Behavioral model)
13 
Task Set for Software 
Design 
1) Examine the information domain model and design appropriate data 
structures for data objects and their attributes 
2) Using the analysis model, select an architectural style (and design 
patterns) that are appropriate for the software 
3) Partition the analysis model into design subsystems and allocate these 
subsystems within the architecture 
a) Design the subsystem interfaces 
b) Allocate analysis classes or functions to each subsystem 
4) Create a set of design classes or components 
a) Translate each analysis class description into a design class 
b) Check each design class against design criteria; consider inheritance issues 
c) Define methods associated with each design class 
d) Evaluate and select design patterns for a design class or subsystem
Task Set for Software Design 
14 
(continued) 
5) Design any interface required with external systems or 
devices 
6) Design the user interface 
7) Conduct component-level design 
a) Specify all algorithms at a relatively low level of abstraction 
b) Refine the interface of each component 
c) Define component-level data structures 
d) Review each component and correct all errors uncovered 
8) Develop a deployment model 
 Show a physical layout of the system, revealing which 
components will be located where in the physical computing 
environment
"Every now and then go away, have a little relaxation, for when 
you come back to your work your judgment will be surer. Go 
some distance away because then the work appears smaller and 
more of it can be taken in at a glance and a lack of harmony 
and proportion is more readily seen." 
Leonardo DaVinci
Design Quality
Goals of a Good Design 
• The design must implement all of the explicit requirements 
contained in the analysis model 
– It must also accommodate all of the implicit requirements 
desired by the customer 
• The design must be a readable and understandable guide for 
those who generate code, and for those who test and 
support the software 
• The design should provide a complete picture of the 
software, addressing the data, functional, and behavioral 
domains from an implementation perspective 
"Writing a clever piece of code that works is one thing; designing something 
that can support a long-lasting business is quite another."
• "A common mistake that people make when 
trying to design something completely 
foolproof was to underestimate the ingenuity 
of complete fools." 
– Douglas Adams
Design Quality Guidelines 
1) A design should exhibit an architecture that 
a) Has been created using recognizable architectural styles or 
patterns 
b) Is composed of components that exhibit good design 
characteristics 
c) Can be implemented in an evolutionary fashion, thereby 
facilitating implementation and testing 
2) A design should be modular; that is, the software should be 
logically partitioned into elements or subsystems 
3) A design should contain distinct representations of data, 
architecture, interfaces, and components 
4) A design should lead to data structures that are 
appropriate for the classes to be implemented and are 
drawn from recognizable data patterns
Quality Guidelines 
(continued) 
5) A design should lead to components that exhibit 
independent functional characteristics 
6) A design should lead to interfaces that reduce the 
complexity of connections between components and with 
the external environment 
7) A design should be derived using a repeatable method that 
is driven by information obtained during software 
requirements analysis 
8) A design should be represented using a notation that 
effectively communicates its meaning 
"Quality isn't something you lay on top of subjects and objects 
like tinsel on a Christmas tree."
Design Concepts
23 
Design Concepts 
• Abstraction 
– Procedural abstraction – a sequence of instructions that have a 
specific and limited function 
– Data abstraction – a named collection of data that describes a data 
object 
• Architecture 
– The overall structure of the software and the ways in which the 
structure provides conceptual integrity for a system 
– Consists of components, connectors, and the relationship between 
them 
• Patterns 
– A design structure that solves a particular design problem within a 
specific context 
– It provides a description that enables a designer to determine 
whether the pattern is applicable, whether the pattern can be 
reused, and whether the pattern can serve as a guide for developing 
similar patterns
Design Concepts (continued) 
24 
• Modularity 
– Separately named and addressable components (i.e., modules) that are 
integrated to satisfy requirements (divide and conquer principle) 
– Makes software intellectually manageable so as to grasp the control 
paths, span of reference, number of variables, and overall complexity 
• Information hiding 
– The designing of modules so that the algorithms and local data contained 
within them are inaccessible to other modules 
– This enforces access constraints to both procedural (i.e., implementation) 
detail and local data structures 
• Functional independence 
– Modules that have a "single-minded" function and an aversion to excessive 
interaction with other modules 
– High cohesion – a module performs only a single task 
– Low coupling – a module has the lowest amount of connection needed with 
other modules
Design Concepts (continued) 
• Stepwise refinement 
– Development of a program by successively refining levels of 
procedure detail 
– Complements abstraction, which enables a designer to 
specify procedure and data and yet suppress low-level details 
• Refactoring 
– A reorganization technique that simplifies the design (or 
internal code structure) of a component without changing its 
function or external behavior 
– Removes redundancy, unused design elements, inefficient or 
unnecessary algorithms, poorly constructed or inappropriate 
data structures, or any other design failures 
• Design classes 
– Refines the analysis classes by providing design detail that 
will enable the classes to be implemented 
– Creates a new set of design classes that implement a 
software infrastructure to support the business solution
Types of Design Classes 
• User interface classes – define all abstractions necessary for 
human-computer interaction (usually via metaphors of real-world 
objects) 
• Business domain classes – refined from analysis classes; 
identify attributes and services (methods) that are required to 
implement some element of the business domain 
• Process classes – implement business abstractions required to 
fully manage the business domain classes 
• Persistent classes – represent data stores (e.g., a database) 
that will persist beyond the execution of the software 
• System classes – implement software management and control 
functions that enable the system to operate and communicate 
within its computing environment and the outside world
Characteristics of a Well- 
Formed Design Class 
• Complete and sufficient 
– Contains the complete encapsulation of all attributes and methods that exist 
for the class 
– Contains only those methods that are sufficient to achieve the intent of the 
class 
• Primitiveness 
– Each method of a class focuses on accomplishing one service for the class 
• High cohesion 
– The class has a small, focused set of responsibilities and single-mindedly 
applies attributes and methods to implement those responsibilities 
• Low coupling 
– Collaboration of the class with other classes is kept to an acceptable 
minimum 
– Each class should have limited knowledge of other classes in other 
subsystems
The Design Model 
The design model has the 
following: 
-layered elements 
-Data/class design 
-Architectural design 
-Interface design 
-design 
A fifth element that follows 
all of 
the others is deployment-level 
design 
Component-level Design 
Interface Design 
Architectural Design 
Data/Class Design
Design Elements 
• Data/class design 
– Creates a model of data and objects that is represented at a high 
level of abstraction 
• Architectural design 
– Depicts the overall layout of the software 
• Interface design 
– Tells how information flows into and out of the system and how it is 
communicated among the components defined as part of the 
architecture 
– Includes the user interface, external interfaces, and internal 
interfaces 
• Component-level design elements 
– Describes the internal detail of each software component by way of 
data structure definitions, algorithms, and interface specifications 
• Deployment-level design elements 
– Indicates how software functionality and subsystems will be 
allocated within the physical computing environment that will 
support the software
Dimensions of the Design 
Process Dimension (Progression) 
Abstraction Dimension 
Data/Class 
Elements 
Interface 
Elements 
Architectural 
Elements 
Component-level 
Elements 
Deployment-level 
Elements 
Model 
Analysis model 
Design model 
High 
Low
Dimensions of the Design 
Model 
• The design model can be viewed in two different dimensions 
– (Horizontally) The process dimension indicates the evolution of 
the parts of the design model as each design task is executed 
– (Vertically) The abstraction dimension represents the level of 
detail as each element of the analysis model is transformed into 
the design model and then iteratively refined 
• Elements of the design model use many of the same UML 
diagrams used in the analysis model 
– The diagrams are refined and elaborated as part of the design 
– More implementation-specific detail is provided 
– Emphasis is placed on 
• Architectural structure and style 
• Interfaces between components and the outside world 
• Components that reside within the architecture
Dimensions of the Design 
Model 
• Design model elements are not always developed in a 
sequential fashion 
– Preliminary architectural design sets the stage 
– It is followed by interface design and component-level design, 
which often occur in parallel
Pattern-based Software Design 
• What is a pattern: 
In software engineering, a design pattern is a general repeatable solution to a 
commonly occurring problem in software design. 
• Pattern-based design creates of a new application by finding a set of proven 
solutions to a clearly delineated set of problems. 
• Each problem and its solution is described by a design pattern that has been 
catalogued and vetted by other software engineers who have encountered the 
problem and implemented the solution while designing other applications. 
• Each design pattern provides you with a proven approach to one part of the 
problem to be solved.
Categorizing Pattern 
Patterns, then, represent expert solutions to recurring problems in a 
context and thus have been captured at many levels of abstraction 
and in numerous domains. Numerous categories are: 
• Design 
• Architectural 
• Analysis 
• Creational 
• Structural 
• Behavioral
Pattern-based Software 
Design 
• Architectural patterns 
– Define the overall structure of software 
– Indicate the relationships among subsystems and software components 
– Define the rules for specifying relationships among software elements 
• Design patterns 
– Address a specific element of the design such as an aggregation of 
components or solve some design problem, relationships among components, 
or the mechanisms for effecting inter-component communication 
– Consist of creational, structural, and behavioral patterns 
• Coding patterns 
– Describe language-specific patterns that implement an algorithmic or data 
structure element of a component, a specific interface protocol, or a 
mechanism for communication among components

More Related Content

What's hot

SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process ModelsNana Sarpong
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING Abhinav Shukla
 
Quality attributes sadhana
Quality attributes sadhanaQuality attributes sadhana
Quality attributes sadhanaSadhana28
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Angelin R
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-softwareAlenaDion
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleGurban Daniel
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models Satya P. Joshi
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Mohamed Sami El-Tahawy
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringAchmad Solichin
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSuresh Koujalagi
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement EngineeringSlideshare
 
Software process Models
Software process ModelsSoftware process Models
Software process ModelsSADEED AMEEN
 

What's hot (20)

SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING
 
Quality attributes sadhana
Quality attributes sadhanaQuality attributes sadhana
Quality attributes sadhana
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
Waterfall Model By Zubair YaSeeN
Waterfall Model By Zubair YaSeeN  Waterfall Model By Zubair YaSeeN
Waterfall Model By Zubair YaSeeN
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Slides chapters 6-7
Slides chapters 6-7Slides chapters 6-7
Slides chapters 6-7
 

Viewers also liked

Viewers also liked (20)

Report on design engineering
Report on design engineeringReport on design engineering
Report on design engineering
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
De 1 (b)
De 1 (b)De 1 (b)
De 1 (b)
 
Design engineering report
Design engineering reportDesign engineering report
Design engineering report
 
Design engineering 1 b
Design engineering 1 bDesign engineering 1 b
Design engineering 1 b
 
Concept in engineering design
Concept in engineering designConcept in engineering design
Concept in engineering design
 
De ppt
De pptDe ppt
De ppt
 
De 1b report
De 1b reportDe 1b report
De 1b report
 
Design report
Design report Design report
Design report
 
Software design
Software designSoftware design
Software design
 
DE1(a) my report
DE1(a) my reportDE1(a) my report
DE1(a) my report
 
Component level design
Component   level designComponent   level design
Component level design
 
mathematics and intelligence
mathematics and intelligencemathematics and intelligence
mathematics and intelligence
 
Scientix 6th SPNE Brussels 8 May 2015: KiiCS
Scientix 6th SPNE Brussels 8 May 2015: KiiCSScientix 6th SPNE Brussels 8 May 2015: KiiCS
Scientix 6th SPNE Brussels 8 May 2015: KiiCS
 
MehulF
MehulFMehulF
MehulF
 
Team04
Team04Team04
Team04
 
Empathy mapping in Design Engineering
Empathy mapping in Design EngineeringEmpathy mapping in Design Engineering
Empathy mapping in Design Engineering
 
REPORT ON SOLAR TRACKING SYSTEM
REPORT ON SOLAR TRACKING SYSTEMREPORT ON SOLAR TRACKING SYSTEM
REPORT ON SOLAR TRACKING SYSTEM
 
DE1b Report format
DE1b Report format DE1b Report format
DE1b Report format
 
Component level design
Component level designComponent level design
Component level design
 

Similar to Design engineering

Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptMotherTheresa2
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssadPreeti Mishra
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTmalathijanapati1
 
Unit iii(part a- design process model)
Unit   iii(part a- design process model)Unit   iii(part a- design process model)
Unit iii(part a- design process model)BALAJI A
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptBule Hora University
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 

Similar to Design engineering (20)

Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.ppt
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
Ch 9-design-engineering
Ch 9-design-engineeringCh 9-design-engineering
Ch 9-design-engineering
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
Chapter 6 design
Chapter 6 designChapter 6 design
Chapter 6 design
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Unit iii(part a- design process model)
Unit   iii(part a- design process model)Unit   iii(part a- design process model)
Unit iii(part a- design process model)
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
 
Ch09
Ch09Ch09
Ch09
 
Ch09
Ch09Ch09
Ch09
 
Design concepts
Design conceptsDesign concepts
Design concepts
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 

More from Preeti Mishra

Effective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsEffective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsPreeti Mishra
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matricesPreeti Mishra
 
architectural design
 architectural design architectural design
architectural designPreeti Mishra
 
Oo concepts and class modeling
Oo concepts and class modelingOo concepts and class modeling
Oo concepts and class modelingPreeti Mishra
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface designPreeti Mishra
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tacticsPreeti Mishra
 
requirements analysis and design
requirements analysis and designrequirements analysis and design
requirements analysis and designPreeti Mishra
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basicsPreeti Mishra
 
Design process design rules
Design process  design rulesDesign process  design rules
Design process design rulesPreeti Mishra
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designsPreeti Mishra
 
Foundations understanding users and interactions
Foundations  understanding users and interactionsFoundations  understanding users and interactions
Foundations understanding users and interactionsPreeti Mishra
 
Coupling coheshion tps
Coupling coheshion tpsCoupling coheshion tps
Coupling coheshion tpsPreeti Mishra
 

More from Preeti Mishra (20)

Effective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsEffective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labs
 
Uml intro
Uml introUml intro
Uml intro
 
Component diagram
Component diagramComponent diagram
Component diagram
 
Activity diag
Activity diagActivity diag
Activity diag
 
Object diagram
Object diagramObject diagram
Object diagram
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Use case Diagram
Use case DiagramUse case Diagram
Use case Diagram
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
 
architectural design
 architectural design architectural design
architectural design
 
Oo concepts and class modeling
Oo concepts and class modelingOo concepts and class modeling
Oo concepts and class modeling
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface design
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
requirements analysis and design
requirements analysis and designrequirements analysis and design
requirements analysis and design
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
 
Design process design rules
Design process  design rulesDesign process  design rules
Design process design rules
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designs
 
Foundations understanding users and interactions
Foundations  understanding users and interactionsFoundations  understanding users and interactions
Foundations understanding users and interactions
 
IntrIntroduction
IntrIntroductionIntrIntroduction
IntrIntroduction
 
Coupling coheshion tps
Coupling coheshion tpsCoupling coheshion tps
Coupling coheshion tps
 

Recently uploaded

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 

Recently uploaded (20)

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 

Design engineering

  • 1. Design Engineering Preeti Mishra Course Instructor
  • 2. Till Now.. • Requirements Engineering • Analysis Modeling Move further • Design Engineering
  • 3. Before Moving On.. • What’s the Difference Between : Analysis Modeling and Design Modeling/ Engineering
  • 4. Roughly speaking… – Analysis: some kind of understanding of a problem or situation. – Design: creation of a solution for the analyzed problem. – Model: simplification that is used to better understand the problem (“analysis model”) or the solution (“design model”).
  • 5. Originally • Analysis/Decomposition: • Breaking a whole into its component parts (in order to better understand it). • Opposed to synthesis/composition: “building a whole out of its parts”. • Design: • Drawing or making a blueprint of something before constructing it. • The design anticipates and guides the production process, the “synthesis”. • Design is part of (the preparatory phases of) synthesis.
  • 6.
  • 7. Orthogonal dimensions: In each axis: two values corresponding to analysis (nearest to origin) and design (farthest).
  • 8. Jonny Adams ;) • https://www.youtube.com/watch?v=iq 4oWw8OI_g
  • 9. • "You can use an eraser on the drafting table or a sledge hammer on the construction site." Frank Lloyd Wright
  • 10. 10 Purpose of Design • Design is where : – customer requirements, – business needs, and – technical considerations all come together in the formulation of a product or system • The design model provides detail about the : – software data structures, – architecture, – interfaces, and – components • The design model can be assessed for quality and be improved before code is generated and tests are conducted
  • 11. 11 Purpose of Design (continued) • A designer must practice diversification and convergence – The designer selects from design components, component solutions, and knowledge available through catalogs, textbooks, and experience – The designer then chooses the elements from this collection that meet the requirements defined by requirements engineering and analysis modeling – Convergence occurs as alternatives are considered and rejected until one particular configuration of components is chosen • Software design is an iterative process through which requirements are translated into a blueprint for constructing the software – Design begins at a high level of abstraction that can be directly traced back to the data, functional, and behavioral requirements – As design iteration occurs, subsequent refinement leads to design representations at much lower levels of abstraction
  • 12. 12 From Analysis Model to Design Model Component-level Design (Class-based model, Flow-oriented model Behavioral model) Interface Design (Scenario-based model, Flow-oriented model Behavioral model) Architectural Design (Class-based model, Flow-oriented model) Data/Class Design (Class-based model, Behavioral model)
  • 13. 13 Task Set for Software Design 1) Examine the information domain model and design appropriate data structures for data objects and their attributes 2) Using the analysis model, select an architectural style (and design patterns) that are appropriate for the software 3) Partition the analysis model into design subsystems and allocate these subsystems within the architecture a) Design the subsystem interfaces b) Allocate analysis classes or functions to each subsystem 4) Create a set of design classes or components a) Translate each analysis class description into a design class b) Check each design class against design criteria; consider inheritance issues c) Define methods associated with each design class d) Evaluate and select design patterns for a design class or subsystem
  • 14. Task Set for Software Design 14 (continued) 5) Design any interface required with external systems or devices 6) Design the user interface 7) Conduct component-level design a) Specify all algorithms at a relatively low level of abstraction b) Refine the interface of each component c) Define component-level data structures d) Review each component and correct all errors uncovered 8) Develop a deployment model  Show a physical layout of the system, revealing which components will be located where in the physical computing environment
  • 15. "Every now and then go away, have a little relaxation, for when you come back to your work your judgment will be surer. Go some distance away because then the work appears smaller and more of it can be taken in at a glance and a lack of harmony and proportion is more readily seen." Leonardo DaVinci
  • 17.
  • 18. Goals of a Good Design • The design must implement all of the explicit requirements contained in the analysis model – It must also accommodate all of the implicit requirements desired by the customer • The design must be a readable and understandable guide for those who generate code, and for those who test and support the software • The design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective "Writing a clever piece of code that works is one thing; designing something that can support a long-lasting business is quite another."
  • 19. • "A common mistake that people make when trying to design something completely foolproof was to underestimate the ingenuity of complete fools." – Douglas Adams
  • 20. Design Quality Guidelines 1) A design should exhibit an architecture that a) Has been created using recognizable architectural styles or patterns b) Is composed of components that exhibit good design characteristics c) Can be implemented in an evolutionary fashion, thereby facilitating implementation and testing 2) A design should be modular; that is, the software should be logically partitioned into elements or subsystems 3) A design should contain distinct representations of data, architecture, interfaces, and components 4) A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns
  • 21. Quality Guidelines (continued) 5) A design should lead to components that exhibit independent functional characteristics 6) A design should lead to interfaces that reduce the complexity of connections between components and with the external environment 7) A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis 8) A design should be represented using a notation that effectively communicates its meaning "Quality isn't something you lay on top of subjects and objects like tinsel on a Christmas tree."
  • 23. 23 Design Concepts • Abstraction – Procedural abstraction – a sequence of instructions that have a specific and limited function – Data abstraction – a named collection of data that describes a data object • Architecture – The overall structure of the software and the ways in which the structure provides conceptual integrity for a system – Consists of components, connectors, and the relationship between them • Patterns – A design structure that solves a particular design problem within a specific context – It provides a description that enables a designer to determine whether the pattern is applicable, whether the pattern can be reused, and whether the pattern can serve as a guide for developing similar patterns
  • 24. Design Concepts (continued) 24 • Modularity – Separately named and addressable components (i.e., modules) that are integrated to satisfy requirements (divide and conquer principle) – Makes software intellectually manageable so as to grasp the control paths, span of reference, number of variables, and overall complexity • Information hiding – The designing of modules so that the algorithms and local data contained within them are inaccessible to other modules – This enforces access constraints to both procedural (i.e., implementation) detail and local data structures • Functional independence – Modules that have a "single-minded" function and an aversion to excessive interaction with other modules – High cohesion – a module performs only a single task – Low coupling – a module has the lowest amount of connection needed with other modules
  • 25. Design Concepts (continued) • Stepwise refinement – Development of a program by successively refining levels of procedure detail – Complements abstraction, which enables a designer to specify procedure and data and yet suppress low-level details • Refactoring – A reorganization technique that simplifies the design (or internal code structure) of a component without changing its function or external behavior – Removes redundancy, unused design elements, inefficient or unnecessary algorithms, poorly constructed or inappropriate data structures, or any other design failures • Design classes – Refines the analysis classes by providing design detail that will enable the classes to be implemented – Creates a new set of design classes that implement a software infrastructure to support the business solution
  • 26. Types of Design Classes • User interface classes – define all abstractions necessary for human-computer interaction (usually via metaphors of real-world objects) • Business domain classes – refined from analysis classes; identify attributes and services (methods) that are required to implement some element of the business domain • Process classes – implement business abstractions required to fully manage the business domain classes • Persistent classes – represent data stores (e.g., a database) that will persist beyond the execution of the software • System classes – implement software management and control functions that enable the system to operate and communicate within its computing environment and the outside world
  • 27. Characteristics of a Well- Formed Design Class • Complete and sufficient – Contains the complete encapsulation of all attributes and methods that exist for the class – Contains only those methods that are sufficient to achieve the intent of the class • Primitiveness – Each method of a class focuses on accomplishing one service for the class • High cohesion – The class has a small, focused set of responsibilities and single-mindedly applies attributes and methods to implement those responsibilities • Low coupling – Collaboration of the class with other classes is kept to an acceptable minimum – Each class should have limited knowledge of other classes in other subsystems
  • 28. The Design Model The design model has the following: -layered elements -Data/class design -Architectural design -Interface design -design A fifth element that follows all of the others is deployment-level design Component-level Design Interface Design Architectural Design Data/Class Design
  • 29. Design Elements • Data/class design – Creates a model of data and objects that is represented at a high level of abstraction • Architectural design – Depicts the overall layout of the software • Interface design – Tells how information flows into and out of the system and how it is communicated among the components defined as part of the architecture – Includes the user interface, external interfaces, and internal interfaces • Component-level design elements – Describes the internal detail of each software component by way of data structure definitions, algorithms, and interface specifications • Deployment-level design elements – Indicates how software functionality and subsystems will be allocated within the physical computing environment that will support the software
  • 30. Dimensions of the Design Process Dimension (Progression) Abstraction Dimension Data/Class Elements Interface Elements Architectural Elements Component-level Elements Deployment-level Elements Model Analysis model Design model High Low
  • 31. Dimensions of the Design Model • The design model can be viewed in two different dimensions – (Horizontally) The process dimension indicates the evolution of the parts of the design model as each design task is executed – (Vertically) The abstraction dimension represents the level of detail as each element of the analysis model is transformed into the design model and then iteratively refined • Elements of the design model use many of the same UML diagrams used in the analysis model – The diagrams are refined and elaborated as part of the design – More implementation-specific detail is provided – Emphasis is placed on • Architectural structure and style • Interfaces between components and the outside world • Components that reside within the architecture
  • 32. Dimensions of the Design Model • Design model elements are not always developed in a sequential fashion – Preliminary architectural design sets the stage – It is followed by interface design and component-level design, which often occur in parallel
  • 33. Pattern-based Software Design • What is a pattern: In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. • Pattern-based design creates of a new application by finding a set of proven solutions to a clearly delineated set of problems. • Each problem and its solution is described by a design pattern that has been catalogued and vetted by other software engineers who have encountered the problem and implemented the solution while designing other applications. • Each design pattern provides you with a proven approach to one part of the problem to be solved.
  • 34. Categorizing Pattern Patterns, then, represent expert solutions to recurring problems in a context and thus have been captured at many levels of abstraction and in numerous domains. Numerous categories are: • Design • Architectural • Analysis • Creational • Structural • Behavioral
  • 35. Pattern-based Software Design • Architectural patterns – Define the overall structure of software – Indicate the relationships among subsystems and software components – Define the rules for specifying relationships among software elements • Design patterns – Address a specific element of the design such as an aggregation of components or solve some design problem, relationships among components, or the mechanisms for effecting inter-component communication – Consist of creational, structural, and behavioral patterns • Coding patterns – Describe language-specific patterns that implement an algorithmic or data structure element of a component, a specific interface protocol, or a mechanism for communication among components